System.Collections.ObjectModel.KeyedCollection<TKey,TItem>. ChangeItemKey, metodo

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

Il ChangeItemKey(TItem, TKey) metodo non modifica la chiave incorporata in item. Sostituisce semplicemente la chiave salvata nel dizionario di ricerca. Pertanto, se newKey è diverso dalla chiave incorporata in item, non è possibile accedere item usando la chiave restituita da GetKeyForItem.

Questo metodo non esegue alcuna operazione se KeyedCollection<TKey,TItem> non dispone di un dizionario di ricerca.

Ogni chiave di un KeyedCollection<TKey,TItem> oggetto deve essere univoca. Una chiave non può essere null.

Questo metodo è un'operazione O(1).

Note per gli implementatori

Prima di modificare la chiave incorporata in un elemento, è necessario chiamare questo metodo per aggiornare la chiave nel dizionario di ricerca. Se la soglia di creazione del dizionario è -1, la chiamata a questo metodo non è necessaria.

Non esporre il ChangeItemKey metodo come metodo pubblico di una classe derivata. L'uso improprio di questo metodo elimina la sincronizzazione del dizionario di ricerca con le chiavi dell'elemento. Ad esempio, impostando la chiave su null e impostandola su un altro valore, vengono aggiunte più chiavi per un elemento al dizionario di ricerca. Esporre internamente questo metodo per consentire le chiavi degli elementi modificabili: quando la chiave di un elemento cambia, questo metodo viene usato per modificare la chiave nel dizionario di ricerca.